home *** CD-ROM | disk | FTP | other *** search
/ Visual Basic Source Code / Visual Basic Source Code.iso / vbsource / nivb / selfile.frm < prev    next >
Text File  |  1995-05-07  |  10KB  |  327 lines

  1. VERSION 2.00
  2. Begin Form SelectFileForm 
  3.    BorderStyle     =   3  'Fixed Double
  4.    Caption         =   "Select File"
  5.    ClientHeight    =   3735
  6.    ClientLeft      =   1935
  7.    ClientTop       =   1665
  8.    ClientWidth     =   5700
  9.    ControlBox      =   0   'False
  10.    FontBold        =   -1  'True
  11.    FontItalic      =   0   'False
  12.    FontName        =   "System"
  13.    FontSize        =   9.75
  14.    FontStrikethru  =   0   'False
  15.    FontUnderline   =   0   'False
  16.    Height          =   4140
  17.    Icon            =   0
  18.    Left            =   1875
  19.    LinkMode        =   1  'Source
  20.    LinkTopic       =   "Form1"
  21.    MaxButton       =   0   'False
  22.    MinButton       =   0   'False
  23.    ScaleHeight     =   3735
  24.    ScaleWidth      =   5700
  25.    Top             =   1320
  26.    Width           =   5820
  27.    Begin DriveListBox DriveBox 
  28.       Height          =   315
  29.       Left            =   2895
  30.       TabIndex        =   7
  31.       Top             =   3135
  32.       Width           =   2475
  33.    End
  34.    Begin CommandButton CancelButton 
  35.       Cancel          =   -1  'True
  36.       Caption         =   "&Cancel"
  37.       Height          =   420
  38.       Left            =   1560
  39.       TabIndex        =   9
  40.       Top             =   3120
  41.       Width           =   1125
  42.    End
  43.    Begin CommandButton OKButton 
  44.       Caption         =   "&OK"
  45.       Default         =   -1  'True
  46.       Height          =   420
  47.       Left            =   240
  48.       TabIndex        =   8
  49.       Top             =   3120
  50.       Width           =   1125
  51.    End
  52.    Begin DirListBox DirBox 
  53.       Height          =   1880
  54.       Left            =   2910
  55.       TabIndex        =   5
  56.       Top             =   880
  57.       Width           =   2460
  58.    End
  59.    Begin FileListBox FileListBox 
  60.       Height          =   1785
  61.       Left            =   240
  62.       TabIndex        =   2
  63.       Top             =   840
  64.       Width           =   2460
  65.    End
  66.    Begin TextBox FileNameBox 
  67.       Height          =   320
  68.       Left            =   195
  69.       TabIndex        =   1
  70.       Text            =   "*.*"
  71.       Top             =   400
  72.       Width           =   2610
  73.    End
  74.    Begin Label Label3 
  75.       Caption         =   "Dri&ves:"
  76.       Height          =   255
  77.       Left            =   2835
  78.       TabIndex        =   6
  79.       Top             =   2850
  80.       Width           =   765
  81.    End
  82.    Begin Label CurrDirLabel 
  83.       Caption         =   "---"
  84.       Height          =   225
  85.       Left            =   2880
  86.       TabIndex        =   4
  87.       Top             =   480
  88.       Width           =   2445
  89.    End
  90.    Begin Label Label2 
  91.       Caption         =   "&Directories:"
  92.       Height          =   240
  93.       Left            =   2820
  94.       TabIndex        =   3
  95.       Top             =   150
  96.       Width           =   1200
  97.    End
  98.    Begin Label Label1 
  99.       Caption         =   "File &Name:"
  100.       Height          =   240
  101.       Left            =   120
  102.       TabIndex        =   0
  103.       Top             =   120
  104.       Width           =   1200
  105.    End
  106. End
  107. Dim LastChange As Integer   'remember what changed last
  108.  
  109. Sub CancelButton_Click ()
  110.     Unload SelectFileForm
  111. End Sub
  112.  
  113. Sub DirBox_Change ()
  114.     
  115.     ' propogate directory changes to other controls
  116.     FileListBox.Path = DirBox.Path
  117.     CurrDirLabel.Caption = DirBox.Path
  118.     ChDir DirBox.Path
  119. End Sub
  120.  
  121. Sub DirBox_Click ()
  122.  
  123.     LastChange = 2  'remember that the DirBox control changed
  124.  
  125. End Sub
  126.  
  127. Sub DriveBox_Change ()
  128.  
  129.     ' change the DirBox control path, it will
  130.     ' pass the change on to the FileListBox control
  131.     DirBox.Path = DriveBox.Drive
  132.     ChDrive (DriveBox.Drive)
  133.  
  134. End Sub
  135.  
  136. Sub FileListBox_Click ()
  137.     
  138.     'echo the selected name in the Text box
  139.     FileNameBox.Text = FileListBox.FileName
  140.  
  141. End Sub
  142.  
  143. Sub FileListBox_DblClick ()
  144.  
  145.     'we have a final selection from the File Save dialog
  146.     
  147.     FileNameBox.Text = FileListBox.FileName
  148.     OKButton_Click
  149.  
  150. End Sub
  151.  
  152. Sub FileListBox_PathChange ()
  153.  
  154.     'Show the current search pattern in the FileNameBox control
  155.     FileNameBox.Text = FileListBox.Pattern
  156.     HighLightTextBox
  157.  
  158. End Sub
  159.  
  160. Sub FileListBox_PatternChange ()
  161.  
  162.     FileNameBox.Text = FileListBox.Pattern
  163.     HighLightTextBox
  164.  
  165. End Sub
  166.  
  167. Sub FileNameBox_Change ()
  168.     LastChange = 1
  169. End Sub
  170.  
  171. Sub Form_Load ()
  172.     If (currentForm = AFP_FORM) Then
  173.         Unload AFPForm
  174.     End If
  175.     CurrDirLabel.Caption = DirBox.Path  'Show full path name in a label
  176.     LastChange = 0                          'No controls have been modified
  177.     
  178.     DirBox.Height = FileListBox.Height      'Align Drives box to Files box
  179.  
  180. End Sub
  181.  
  182. Sub HighLightTextBox ()
  183.     FileNameBox.SelStart = 0
  184.     FileNameBox.SelLength = Len(FileNameBox.Text)
  185.     FileNameBox.SetFocus
  186. End Sub
  187.  
  188. Function IsFileName (FileSpec As String) As Integer
  189. ' This function accepts FileSpec, a string, as input, then
  190. ' checks to see if the string is a valid file path/expression.
  191. ' If FileSpec is valid, and specifies a new drive, pattern and/or
  192. ' directory, the directory and file list boxes are notified.
  193. '
  194. ' If FileSpec contains a valid file name, the filename is placed
  195. ' in the form's text edit box and IsFileName() returns a value of
  196. ' TRUE.  If FileSpec does not contain a valid file name (ie, it
  197. ' contains directory name and/or a new file pattern and/or an
  198. ' invalid file/path expression), IsFileName() returns FALSE.
  199.  
  200.     Dim Index As Integer
  201.     Dim OldDir As String
  202.     Dim NewDir As String
  203.     
  204.     On Local Error Resume Next
  205.     
  206.     OldDir = CurDir$                    'Remember current directory
  207.     
  208.     FileSpec = LCase$(FileSpec)
  209.  
  210.     If Mid$(FileSpec, 2, 1) = ":" Then  'Does it specify new drive?
  211.         ChDrive (FileSpec)
  212.         DirBox.Path = CurDir$
  213.         If Err Then
  214.             MsgBox Error$(Err), 0, "Disk Error"
  215.             ChDrive (OldDir)
  216.             DirBox.Path = CurDir$
  217.             IsFileName = False
  218.             Exit Function
  219.         Else FileSpec = Right$(FileSpec, Len(FileSpec) - 2)
  220.         End If
  221.     End If
  222.     
  223.     ChDir (FileSpec)
  224.     If Err Then                     'Separate path/filename, try again
  225.         While InStr(FileSpec, "\")      'Parse any directory info
  226.         
  227.             'NewDir gets text to the left of & including FileSpec's first "\"
  228.             NewDir = NewDir + Left$(FileSpec, InStr(FileSpec, "\"))
  229.         
  230.             'FileSpec becomes the text to the right of the first "\"
  231.             FileSpec = Right$(FileSpec, Len(FileSpec) - InStr(FileSpec, "\"))
  232.         Wend
  233.         
  234.         If NewDir <> "" Then
  235.             If Len(NewDir) > 1 Then NewDir = Left$(NewDir, Len(NewDir) - 1)'Remove ending "\"
  236.             Err = 0
  237.             ChDir (NewDir)
  238.             If Err Then
  239.                 MsgBox "Invalid path: '" + NewDir + "'", 0, "Cardfile"
  240.                 IsFileName = False
  241.             Else
  242.                 If ProcessFileSpec(FileSpec) Then
  243.                     IsFileName = True
  244.                 Else
  245.                     If (InStr(FileSpec, "*") = 0) And (InStr(FileSpec, "?") = 0) Then
  246.                         ChDrive (OldDir)
  247.                         ChDir (OldDir)
  248.                     Else
  249.                         DirBox.Path = CurDir$     'Update file controls
  250.                     End If
  251.                     IsFileName = False
  252.                 End If
  253.             End If
  254.         Else
  255.             IsFileName = ProcessFileSpec(FileSpec)
  256.         End If
  257.     Else
  258.         'User specified a new, valid dir; update the file controls
  259.         DirBox.Path = FileSpec
  260.     End If
  261. End Function
  262.  
  263. Sub OKButton_Click ()
  264.     Dim FileSpec As String
  265.  
  266.     Select Case LastChange
  267.         Case 0 To 1             'Text box control was last changed
  268.             LastChange = False
  269.             FileSpec = FileNameBox.Text
  270.             If IsFileName(FileSpec) Then
  271.                 HighLightTextBox
  272.                 SelectFileForm.Hide
  273.                 If (currentForm = AFP_FORM) Then
  274.                     AFPInfoForm.Show
  275.                 Else
  276.                     FileInfoForm.Show
  277.                 End If
  278.             End If
  279.